其實我們在第四天的範例程式裡,就已經使用了這個新功能 - 底線格式數值。簡單的說,就是一個數值(整數或浮點數)的表示方式,除了數字、型別符號、正負符號、小數點外,還能加上底線來增加數值的可讀性。
昨天的例子當中,我們將一個整數以2進位表示時,通常會落落長一大串的 0 和 1。當數字太大時,我們往往連幾個 0 都數不清楚。所以 Java SE 7 裡新增了這個功能,用底線來分隔數字,讓你更方便閱讀,請看下面的例子:
package idv.jacky.ironman4;
public class Day12Example {
int a = 1_2_3_4_5; //10進位
int b = 0x30_39; //16進位
int c = 0_30071; //8進位
int d = 0b11_0000_0011_1001; //2進位
float f = 3.14_15_92_6f; //浮點數
double db = 12.34_56_78; //雙精確浮點數
}
你可以看到,不論是整數或是浮點數都能加上底線。有幾個使用上的限制
底線不能加在數值的開頭,例如 _12_34,這樣是錯誤的。
底線不能加上數值的結尾,例如 12_34_,這樣是錯誤的。
底線不能加在2進位和16進位的進位表示字元之後,例如 0x_1234,0b_1100,這樣是錯誤的。
PS. 上面程式碼第7行的浮點數 f,數值最後有個 f 是用來表示它是 float 型別;若沒有加上這個 f 在最後的話,Java 會預設這個數值是 double 型別。